package TableModels;

import Entities.HdTipoProblema;
import Util.Constantes;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Ferrari
 */
public class TipoProblemaRelatorioTableModel {
    
    private static DefaultTableModel model;

    private TipoProblemaRelatorioTableModel() {
    }
    
 public static void init(){
        model = new DefaultTableModel();
        model.setColumnCount(3);
        String[] colunas = new String[]{
                Constantes.COLUNA_CODIGO,
                Constantes.COLUNA_DESCRICAO,
                Constantes.COLUNA_DE_TITULO_PROBLEMA
        };
        model.setColumnIdentifiers(colunas);
    }
 
    private static void addTipoProblema(HdTipoProblema tipoProblema){

        List<String> s = new ArrayList<>();
        try{
            s.add(String.valueOf(tipoProblema.getCoTipoProblema()));
        }catch(Exception e){
            s.add(Constantes.STRING_VAZIA);
        }
        try{
            s.add(tipoProblema.getDeTipoProblema());
        }catch(Exception e){
            s.add(Constantes.STRING_VAZIA);
        }
        try{
            s.add(tipoProblema.getDeTituloProblema());
        }catch(Exception e){
            s.add(Constantes.STRING_VAZIA);
        }
        
        String []  linha = new String[]{
            s.get(0),
            s.get(1),
            s.get(2)
        };
        
        getModel().addRow(linha);
    }
    
    public static DefaultTableModel addAllTipoProblema(List<HdTipoProblema> listatipoProblemas){
        limpaTabela();
        try{
            for (HdTipoProblema hdTipoProblema : listatipoProblemas) {
                addTipoProblema(hdTipoProblema);
            }
            return getModel();
        }catch(Exception e){
            return getModel();
        }
    }
    
    public static DefaultTableModel getModel() {
        if (model == null) {
            init();
        }
        return model;
    }
    
    public static void limpaTabela(){
        getModel().setRowCount(0);
    }
}
